Flask web开发

Flask web开发

背景

python语言目前在机器学习领域也是大放异彩,基本上所有的开源工具都支持python,因此,还是有必要学习下python前端框架相关知识。Flask是python的一个前端框架,类似的还有django等。

主要内容

服务端代码

建立一个web路径test,并支持get和post两种方式。当使用get方式的话,直接渲染一个页面; 当使用post方式的时候,可以通过request.form方式获取用户提交的内容,在后端做相应的查询,并通过labels_results传递,在前端重新渲染。

1
2
3
4
5
6
7
8
9
10
11
12
13
@app.route('/test', methods=['GET', 'POST'])
def index():
if request.method == 'GET':
return render_template('test.html', results = None)
else:
query = (request.form.get('se_query').strip())
q_split = trans_query(query)

labels_results = {
'query' : q_split,
'data_len' : len(q_split)
}
return render_template('test.html', **labels_results)

前端代码

最开始的部分是引用bootstrap相关的css / js,使页面更加漂亮,中间是自定义一些css,控制控件的位置信息;最后是jinjia2模版引擎,读取后端传递的数据并展现。

还需要注意的一点是,自己下载的css和js文件必须放在static路径下,模版必须放在template目录下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<head>
<meta charset="utf-8">
<script type="text/javascript" src="static/js/jquery.js"></script>
<link rel="stylesheet" href="static/css/bootstrap.min.css">
<script src="static/js/bootstrap.min.js"></script>

<style>
.form-control {
text-align : center;
width : 600px;
margin-top : 100px;
margin-left : 400px;
}
</style>
</head>

<body>
<table class="table table-bordered">
<thead>
<tr>
<th>Query</th>
<th>Seq Label Result</th>
</tr>
</thead>
{% for i in range(data_len)%}
<tbody>
<tr>
<td>{{ query[i] }}</td>
<td>{{ label_res[i] }}</td>
</tr>
</tbody>
{% endfor %}
</table>
</body>

总结

之前自学过node.js相关的知识,这次学习了python相关的内容,感觉都是相通的,学习起来非常快。

------ 本文结束 ------
k